//package com.software.levelupandroid.statistics;
//
//import android.content.Context;
//import android.graphics.Color;
//import android.os.Bundle;
//
//import androidx.annotation.NonNull;
//import androidx.annotation.Nullable;
//import androidx.appcompat.app.AppCompatActivity;
//
//import com.github.mikephil.charting.charts.BarChart;
//import com.github.mikephil.charting.charts.PieChart;
//import com.github.mikephil.charting.components.Legend;
//import com.github.mikephil.charting.components.XAxis;
//import com.github.mikephil.charting.components.YAxis;
//import com.github.mikephil.charting.data.BarData;
//import com.github.mikephil.charting.data.BarDataSet;
//import com.github.mikephil.charting.data.BarEntry;
//import com.github.mikephil.charting.data.PieData;
//import com.github.mikephil.charting.data.PieDataSet;
//import com.github.mikephil.charting.data.PieEntry;
//import com.github.mikephil.charting.utils.ColorTemplate;
//import com.software.levelupandroid.R;
//import com.software.levelupandroid.entity.Result;
//import com.software.levelupandroid.entity.Task;
//import com.software.levelupandroid.home.CallBack;
//import com.software.levelupandroid.statistics.getTaskByMonth.TaskByMonthActivity;
//import com.software.levelupandroid.utils.JsonUtil;
//import com.software.levelupandroid.utils.OkhttpUtil;
//
//import java.io.IOException;
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//import java.util.Random;
//
//import okhttp3.Call;
//import okhttp3.Callback;
//import okhttp3.Response;
//
//public class CountActivity extends AppCompatActivity {
//
//    private PieChart pieChart;
//    @Override
//    protected void onCreate(@Nullable Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//        setContentView(R.layout.count);
//        BarChart barChart = findViewById(R.id.barChart);
//        barChart= initBarChart(barChart);//初始化
//        BarData barData =setBardata();//初始化数据
//        barChart.setData(barData);//在柱状图显示模拟数据
//        barChart.invalidate();//柱状图刷新
//
//        //饼状图
//        pieChart = findViewById(R.id.pieChart);
//        //初始化实验数据
//        initTasks();
//        //获取当月的task数据
//        Map<Integer, Integer> priorityCounts = getPriorityCounts(taskList);
//        setPieChartData(priorityCounts,taskList.size());
//    }
//
//    //获取当月的数据
//    //获取优先级
//    private Map<Integer, Integer> getPriorityCounts(List<Task> tasks) {
//        Map<Integer, Integer> counts = new HashMap<>();
//        for (Task task : tasks) {
//            int priority = task.getPriority();
//            counts.put(priority, counts.getOrDefault(priority, 0) + 1);
//        }
//        return counts;
//    }
//    private void initTasks() {
//        // 这里应该从实际数据源获取任务列表，例如从数据库或API
//        // 为了演示，创建一些示例任务
//        List<Task> tasks = new ArrayList<>();
//
//        tasks.add(new Task("Task 1", "2024年05月24日 09:00", "2024年05月24日 10:00", 0));
//        tasks.add(new Task("Task 2", "2024年05月24日 11:00", "2024年05月24日 12:00", 1));
//        tasks.add(new Task("Task 3", "2024年05月24日 13:00", "2024年05月24日 14:00", 2));
//        tasks.add(new Task("Task 4", "2024年05月24日 15:00", "2024年05月24日 16:00", 3));
//        tasks.add(new Task("Task 5", "2024年05月24日 17:00", "2024年05月24日 18:00", 0));
//        return tasks;
//    }
//    private void setPieChartData(Map<Integer, Integer> priorityCounts,int totalTasks) {
//        List<PieEntry> entries = new ArrayList<>(); //创建饼状图的条目列表
//        for (Map.Entry<Integer, Integer> entry : priorityCounts.entrySet()) { //遍历优先级统计结果
//            int priority = entry.getKey(); //获取优先级
//            int count = entry.getValue(); //获取数量
//            String label = getPriorityLabel(priority); // 获取优先级标签
//            entries.add(new PieEntry(count, label)); // 创建并添加饼状图条目
//        }
//        PieDataSet dataSet = new PieDataSet(entries, "Task Priority");//创建饼状图数据集
//        //设计颜色
//        ArrayList<Integer> colors = new ArrayList<>();
//        colors.add(Color.parseColor("#F65D5D")); // 重要且紧急
//        colors.add(Color.parseColor("#D3A8FF")); // 重要不紧急
//        colors.add(Color.parseColor("#97D28B")); // 紧急不重要
//        colors.add(Color.parseColor("#85D3F1")); // 不重要不紧急
//        dataSet.setColors(colors);//设置饼状图颜色
//
//        dataSet.setValueTextColor(Color.WHITE); //设置饼状图文本颜色
//        dataSet.setValueTextSize(16f); //设置饼状图文本大小
//        PieData pieData = new PieData(dataSet); //创建饼状图数据对象
//        pieChart.setData(pieData); //设置饼状图的数据
//        pieChart.invalidate(); // 刷新饼状图
//
//        //饼状图圆环中间文字
//        pieChart.setCenterText("完成任务数：" + totalTasks);
//        pieChart.setCenterTextSize(10f);
//        pieChart.setCenterTextColor(Color.BLACK);
//
//        pieChart.setHighlightPerTapEnabled(false);//选中变大
//        pieChart.setRotationEnabled(false);//触摸旋转
//        pieChart.getDescription().setEnabled(false); //禁用饼状图描述
//        Legend legend = pieChart.getLegend(); //获取饼状图图例
//        legend.setVerticalAlignment(Legend.LegendVerticalAlignment.TOP); //设置图例垂直对齐方式
//        legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.RIGHT); //设置图例水平对齐方式
//        legend.setOrientation(Legend.LegendOrientation.VERTICAL); //设置图例方向
//        legend.setDrawInside(false); //设置图例是否绘制在饼状图内
//        pieChart.setUsePercentValues(true); // 使用百分比显示
//
//    }
//    // 获取优先级标签的方法
//    private String getPriorityLabel(int priority) {
//        switch (priority) {
//            case 0: return "重要且紧急"; // 优先级0的标签
//            case 1: return "重要不紧急"; // 优先级1的标签
//            case 2: return "紧急不重要"; // 优先级2的标签
//            case 3: return "不重要不紧急"; // 优先级3的标签
//            default: return "未知优先级"; // 未知优先级的标签
//        }
//    }
//
//
//    //初始化柱状图数据
//    private BarData  setBardata(){
//        List<BarEntry> entries = new ArrayList<>();//设置存放数据
//
//        //填充数据
//        for(int i =0;i<30;i++){
//            entries.add(new BarEntry(i,new Random().nextInt(200)));
//        }
//        BarDataSet barDataSet= new BarDataSet(entries,"完成任务数");//设计数据集
//        BarData barData = new BarData(barDataSet);
//        return barData;
//    }
//    //初始化
//    private BarChart initBarChart(BarChart barChart){
//        barChart.setDescription(null);//解释性文字为空
//        barChart.setDrawBarShadow(false);
//        barChart.setDrawValueAboveBar(true);
//        XAxis xAxis = barChart.getXAxis();//x轴
//        YAxis yAxisLeft = barChart.getAxisLeft();//左侧y轴
//        setAxis(xAxis,yAxisLeft);
//        return barChart;
//    }
//
//    //设置xy轴
//    private void setAxis(XAxis xAxis,YAxis leftYAxis){
//        xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);//x轴在底部显示
//        xAxis.setAxisLineWidth(1);
//        xAxis.setAxisMinimum(0);//从0显示
//        xAxis.setDrawAxisLine(true);//画轴线
//        xAxis.setDrawGridLines(false);
//        xAxis.setEnabled(true);
//
//        leftYAxis.setAxisLineWidth(1);
//        leftYAxis.setAxisMinimum(0);//从0显示
//        leftYAxis.setEnabled(true);
//        leftYAxis.setDrawGridLines(false);
//        leftYAxis.setDrawAxisLine(true);//画轴线
//        return;
//    }
//
//
//
//
//}
//
//
//
//
//    protected void onCreate(Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//        setContentView(R.layout.count);
//
//        // 初始化柱状图
//        barChart = findViewById(R.id.barChart);
//        barChart = initBarChart(barChart);
//        barChart.invalidate(); // 刷新柱状图
//
//        // 初始化饼状图
//        pieChart = findViewById(R.id.pieChart);
//
//        // 初始化 ViewModel
//        taskByMonthModel = new ViewModelProvider(this).get(TaskByMonthModel.class);
//
//        // 获取并观察任务数据
//        String month = "2024年06月";
//        taskByMonthModel.getTasksByMonth(this, month);
//        observeTaskData();
//    }
//
//    private void observeTaskData() {
//        taskByMonthModel.getTaskListLiveData().observe(this, new Observer<Resource<List<Task>>>() {
//            @Override
//            public void onChanged(Resource<List<Task>> listResource) {
//                if (listResource != null) {
//                    if (listResource.isSuccess()) {
//                        List<Task> taskList = listResource.getData();
//                        // 统计任务优先级
//                        Map<Integer, Integer> priorityCounts = getPriorityCounts(taskList);
//                        setPieChartData(priorityCounts, taskList.size());
//                        // 统计每天的任务完成数
//                        Map<String, Integer> taskCountByDay = getTaskCountByDay(taskList);
//                        setBarChartData(taskCountByDay);
//                    } else if (listResource.isFailure()) {
//                        ToastUtil.showToastOnUI(TaskByMonthActivity.this, listResource.getErrorMessage());
//                    }
//                }
//            }
//        });
//    }
//
//    // 获取优先级统计
//    private Map<Integer, Integer> getPriorityCounts(List<Task> tasks) {
//        Map<Integer, Integer> counts = new HashMap<>();
//        for (Task task : tasks) {
//            int priority = task.getPriority();
//            counts.put(priority, counts.getOrDefault(priority, 0) + 1);
//        }
//        return counts;
//    }
//
//    // 获取每天任务完成数
//    private Map<String, Integer> getTaskCountByDay(List<Task> tasks) {
//        Map<String, Integer> counts = new HashMap<>();
//        for (Task task : tasks) {
//            String date = task.getStartTime().split(" ")[0];
//            counts.put(date, counts.getOrDefault(date, 0) + 1);
//        }
//        return counts;
//    }
//
//    // 设置饼状图数据
//    private void setPieChartData(Map<Integer, Integer> priorityCounts, int totalTasks) {
//        List<PieEntry> entries = new ArrayList<>();
//        for (Map.Entry<Integer, Integer> entry : priorityCounts.entrySet()) {
//            int priority = entry.getKey();
//            int count = entry.getValue();
//            String label = getPriorityLabel(priority);
//            entries.add(new PieEntry(count, label));
//        }
//        PieDataSet dataSet = new PieDataSet(entries, "Task Priority");
//        ArrayList<Integer> colors = new ArrayList<>();
//        colors.add(Color.parseColor("#F65D5D")); // 重要且紧急
//        colors.add(Color.parseColor("#D3A8FF")); // 重要不紧急
//        colors.add(Color.parseColor("#97D28B")); // 紧急不重要
//        colors.add(Color.parseColor("#85D3F1")); // 不重要不紧急
//        dataSet.setColors(colors);
//        dataSet.setValueTextColor(Color.WHITE);
//        dataSet.setValueTextSize(16f);
//        PieData pieData = new PieData(dataSet);
//        pieChart.setData(pieData);
//        pieChart.invalidate();
//
//        pieChart.setCenterText("完成任务数：" + totalTasks);
//        pieChart.setCenterTextSize(10f);
//        pieChart.setCenterTextColor(Color.BLACK);
//        pieChart.setHighlightPerTapEnabled(false);
//        pieChart.setRotationEnabled(false);
//        pieChart.getDescription().setEnabled(false);
//        Legend legend = pieChart.getLegend();
//        legend.setVerticalAlignment(Legend.LegendVerticalAlignment.TOP);
//        legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.RIGHT);
//        legend.setOrientation(Legend.LegendOrientation.VERTICAL);
//        legend.setDrawInside(false);
//        pieChart.setUsePercentValues(true);
//    }
//
//    // 获取优先级标签的方法
//    private String getPriorityLabel(int priority) {
//        switch (priority) {
//            case 0: return "重要且紧急";
//            case 1: return "重要不紧急";
//            case 2: return "紧急不重要";
//            case 3: return "不重要不紧急";
//            default: return "未知优先级";
//        }
//    }
//
//    // 设置柱状图数据
//    private void setBarChartData(Map<String, Integer> taskCountByDay) {
//        List<BarEntry> entries = new ArrayList<>();
//        List<String> dates = new ArrayList<>(taskCountByDay.keySet());
//        for (int i = 0; i < dates.size(); i++) {
//            String date = dates.get(i);
//            int count = taskCountByDay.get(date);
//            entries.add(new BarEntry(i, count));
//        }
//        BarDataSet barDataSet = new BarDataSet(entries, "完成任务数");
//        barDataSet.setColors(ColorTemplate.MATERIAL_COLORS);
//        BarData barData = new BarData(barDataSet);
//        barChart.setData(barData);
//        barChart.invalidate();
//
//        XAxis xAxis = barChart.getXAxis();
//        xAxis.setValueFormatter(new IndexAxisValueFormatter(dates));
//    }
//
//    // 初始化柱状图
//    private BarChart initBarChart(BarChart barChart) {
//        barChart.setDescription(null);
//        barChart.setDrawBarShadow(false);
//        barChart.setDrawValueAboveBar(true);
//        XAxis xAxis = barChart.getXAxis();
//        YAxis yAxisLeft = barChart.getAxisLeft();
//        setAxis(xAxis, yAxisLeft);
//        return barChart;
//    }
//
//    // 设置XY轴
//    private void setAxis(XAxis xAxis, YAxis leftYAxis) {
//        xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
//        xAxis.setAxisLineWidth(1);
//        xAxis.setAxisMinimum(0);
//        xAxis.setDrawAxisLine(true);
//        xAxis.setDrawGridLines(false);
//        xAxis.setEnabled(true);
//
//        leftYAxis.setAxisLineWidth(1);
//        leftYAxis.setAxisMinimum(0);
//        leftYAxis.setEnabled(true);
//        leftYAxis.setDrawGridLines(false);
//        leftYAxis.setDrawAxisLine(true);
//    }
//}


package com.software.levelupandroid.statistics;

import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.lifecycle.Observer;

import com.github.mikephil.charting.charts.BarChart;
import com.github.mikephil.charting.charts.PieChart;
import com.github.mikephil.charting.components.AxisBase;
import com.github.mikephil.charting.components.Legend;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.components.YAxis;
import com.github.mikephil.charting.data.BarData;
import com.github.mikephil.charting.data.BarDataSet;
import com.github.mikephil.charting.data.BarEntry;
import com.github.mikephil.charting.data.Entry;
import com.github.mikephil.charting.data.PieData;
import com.github.mikephil.charting.data.PieDataSet;
import com.github.mikephil.charting.data.PieEntry;
import com.github.mikephil.charting.formatter.ValueFormatter;
import com.github.mikephil.charting.utils.ColorTemplate;
import com.github.mikephil.charting.utils.ViewPortHandler;
import com.software.levelupandroid.R;
import com.software.levelupandroid.entity.Resource;
import com.software.levelupandroid.entity.Task;

import com.software.levelupandroid.statistics.TaskByMonthModel;
import com.software.levelupandroid.utils.ToastUtil;

import java.sql.SQLOutput;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class CountActivity extends AppCompatActivity {
    private Toolbar toolbar;
    private PieChart pieChart;
    private BarChart barChart;
    private TaskByMonthModel taskByMonthModel; //ViewModel对象
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.count);
        //初始化实验数据
        List<Task> taskList = initTasks();
        //日期
//        selectedDateTextView = findViewById(R.id.selectedDateTextView);
//        Button selectDateButton = findViewById(R.id.selectDateButton);
//        selectDateButton.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                MonthYearPickerDialogFragment dialogFragment = new MonthYearPickerDialogFragment();
//                dialogFragment.setOnDateSelectedListener(new MonthYearPickerDialogFragment.OnDateSelectedListener() {
//                    @Override
//                    public void onDateSelected(String date) {
//                        selectedDateTextView.setText(date);
//                    }
//                });
//                dialogFragment.show(getSupportFragmentManager(), "MonthYearPickerDialog");
//            }
//        });


        System.out.println("成功跳转");
        String month = "2024年06月";
        //获取指定月份的任务数据,调用接口
        TaskByMonthModel taskByMonthModel = new TaskByMonthModel();
        taskByMonthModel.getTasksByMonth(this,month);

        barChart = findViewById(R.id.barChart);
        barChart= initBarChart(barChart);//初始化

        initToolbar();

        //拿取数据并显示到柱状图和饼状图
        taskByMonthModel.getTaskListLiveData().observe(this, new Observer<Resource<List<Task>>>() {
            @Override
            public void onChanged(Resource<List<Task>> listResource) {
                if (listResource != null) {//不为空且获取数据成功
                    if (listResource.isSuccess()) {
                        List<Task> taskList = listResource.getData();
                        System.out.println(taskList);
                        Map<Integer, Integer> taskCountByDay = getTaskCountByDay(taskList);
                        BarData barData =setBardata(taskCountByDay);//初始化数据
                        barChart.setData(barData);//在柱状图显示模拟数据
                        barChart.invalidate();//柱状图刷新
                        //饼状图
                        pieChart = findViewById(R.id.pieChart);

                        //获取当月的task数据
                        Map<Integer, Integer> priorityCounts = getPriorityCounts(taskList);
                        setPieChartData(priorityCounts,taskList.size());

                    }else if (listResource.isFailure()) {
                        ToastUtil.showToastOnUI(CountActivity.this, listResource.getErrorMessage());
                    }
                }
            }
        });
    }

    private void initToolbar() {
        toolbar = findViewById(R.id.toolbar_count);
        setSupportActionBar(toolbar);
        ActionBar actionBar = getSupportActionBar();
        if (actionBar != null){
            actionBar.setDisplayShowTitleEnabled(false);
        }
    }

    //“向上”按钮的点击事件
    @Override
    public boolean onSupportNavigateUp() {
        finish();
        return true;
    }

    //获取当月的数据
    //获取优先级
    private Map<Integer, Integer> getPriorityCounts(List<Task> tasks) {
        Map<Integer, Integer> counts = new HashMap<>();
        for (Task task : tasks) {
            int priority = task.getPriority();
            counts.put(priority, counts.getOrDefault(priority, 0) + 1);
        }
        return counts;
    }
    private List<Task> initTasks() {
        // 这里应该从实际数据源获取任务列表，例如从数据库或API
        // 为了演示，创建一些示例任务
        List<Task> tasks = new ArrayList<>();

        tasks.add(new Task("Task 1", "2024年05月1日 09:00",  0));
        tasks.add(new Task("Task 1", "2024年05月1日 09:00",  0));
        tasks.add(new Task("Task 2", "2024年05月3日 11:00", 1));
        tasks.add(new Task("Task 3", "2024年05月10日 13:00",2));
        tasks.add(new Task("Task 4", "2024年05月22日 15:00", 3));
        tasks.add(new Task("Task 5", "2024年05月24日 17:00",  0));
        return tasks;
    }
    private void setPieChartData(Map<Integer, Integer> priorityCounts,int totalTasks) {
        List<PieEntry> entries = new ArrayList<>(); //创建饼状图的条目列表
        for (Map.Entry<Integer, Integer> entry : priorityCounts.entrySet()) { //遍历优先级统计结果
            int priority = entry.getKey(); //获取优先级
            int count = entry.getValue(); //获取数量
            String label = getPriorityLabel(priority); // 获取优先级标签
            entries.add(new PieEntry(count, label)); // 创建并添加饼状图条目
        }
        PieDataSet dataSet = new PieDataSet(entries, "Task Priority");//创建饼状图数据集
        //设计颜色
        ArrayList<Integer> colors = new ArrayList<>();
        colors.add(Color.parseColor("#F65D5D")); // 重要且紧急
        colors.add(Color.parseColor("#D3A8FF")); // 重要不紧急
        colors.add(Color.parseColor("#97D28B")); // 紧急不重要
        colors.add(Color.parseColor("#85D3F1")); // 不重要不紧急
        dataSet.setColors(colors);//设置饼状图颜色

        dataSet.setValueTextColor(Color.WHITE); //设置饼状图文本颜色
        dataSet.setValueTextSize(16f); //设置饼状图文本大小
        PieData pieData = new PieData(dataSet); //创建饼状图数据对象
        pieChart.setData(pieData); //设置饼状图的数据
        pieChart.invalidate(); // 刷新饼状图

        //饼状图圆环中间文字
        pieChart.setCenterText("完成任务数：" + totalTasks);
        pieChart.setCenterTextSize(10f);
        pieChart.setCenterTextColor(Color.BLACK);

        pieChart.setHighlightPerTapEnabled(false);//选中变大
        pieChart.setRotationEnabled(false);//触摸旋转
        pieChart.getDescription().setEnabled(false); //禁用饼状图描述
        Legend legend = pieChart.getLegend(); //获取饼状图图例
        legend.setVerticalAlignment(Legend.LegendVerticalAlignment.TOP); //设置图例垂直对齐方式
        legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.RIGHT); //设置图例水平对齐方式
        legend.setOrientation(Legend.LegendOrientation.VERTICAL); //设置图例方向
        legend.setDrawInside(false); //设置图例是否绘制在饼状图内
        pieChart.setUsePercentValues(true); // 使用百分比显示

    }
    // 获取优先级标签的方法
    private String getPriorityLabel(int priority) {
        switch (priority) {
            case 0: return "重要且紧急"; // 优先级0的标签
            case 1: return "重要不紧急"; // 优先级1的标签
            case 2: return "紧急不重要"; // 优先级2的标签
            case 3: return "不重要不紧急"; // 优先级3的标签
            default: return "未知优先级"; // 未知优先级的标签
        }
    }

    //初始化柱状图数据
    private BarData  setBardata(Map<Integer, Integer> dailyTaskCount){
//        List<BarEntry> entries = new ArrayList<>();//设置存放数据
//        //填充数据
//        for(int i =0;i<30;i++){
//            entries.add(new BarEntry(i,new Random().nextInt(200)));
//        }
//        BarDataSet barDataSet= new BarDataSet(entries,"完成任务数");//设计数据集
//        BarData barData = new BarData(barDataSet);

        List<BarEntry> entries = new ArrayList<>();
        List<String> dates = new ArrayList<>();


        for (int day = 1; day <= 31; day++) {
            int count = dailyTaskCount.getOrDefault(day, 0);
            if (count >=0) {  // 过滤掉任务数量为0的条目
                entries.add(new BarEntry(day, count));
            }
            dates.add(String.valueOf(day));
        }
        BarDataSet barDataSet = new BarDataSet(entries, "完成任务数");
        BarData barData = new BarData(barDataSet);
        barDataSet.setValueFormatter(new MyValueFormatter());
        barChart.setData(barData);
        barChart.invalidate();

        return barData;
    }
    //初始化
    private BarChart initBarChart(BarChart barChart){
        barChart.setDescription(null);//解释性文字为空
        barChart.setDrawBarShadow(false);
        barChart.setDrawValueAboveBar(true);
        XAxis xAxis = barChart.getXAxis();//x轴
        YAxis yAxisLeft = barChart.getAxisLeft();//左侧y轴
        YAxis yAxisRight = barChart.getAxisRight();
        setAxis(xAxis,yAxisLeft,yAxisRight);
        return barChart;
    }

    //设置xy轴
    private void setAxis(XAxis xAxis,YAxis leftYAxis,YAxis rightYAxis){
//        xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);//x轴在底部显示
//        xAxis.setAxisLineWidth(1);
//        xAxis.setAxisMinimum(0);//从0显示
//        xAxis.setDrawAxisLine(true);//画轴线
//        xAxis.setDrawGridLines(false);
//        xAxis.setEnabled(true);
//
//        leftYAxis.setAxisLineWidth(1);
//        leftYAxis.setAxisMinimum(0);//从0显示
//        leftYAxis.setEnabled(true);
//        leftYAxis.setDrawGridLines(false);
//        leftYAxis.setDrawAxisLine(true);//画轴线
        leftYAxis.setValueFormatter(new ValueFormatter() {
            @Override
            public String getFormattedValue(float value) {
                return String.valueOf((int) value);  //显示整数
            }
        });
        xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);//x轴在底部显示
        xAxis.setAxisLineWidth(1);
        xAxis.setAxisMinimum(0);//从0显示
        xAxis.setDrawAxisLine(true);//画轴线
        xAxis.setDrawGridLines(false);
        xAxis.setEnabled(true);

        leftYAxis.setAxisLineWidth(1);
        leftYAxis.setAxisMinimum(0);//从0显示
        leftYAxis.setEnabled(true);
        leftYAxis.setDrawGridLines(false);
        leftYAxis.setDrawAxisLine(true);//画轴线
        leftYAxis.setGranularity(1f);  //确保Y轴最小间隔为1
        leftYAxis.setValueFormatter(new ValueFormatter() {
            @Override
            public String getFormattedValue(float value) {
                return String.valueOf((int) value);  //显示整数
            }
        });

        rightYAxis.setGranularity(1f);
        rightYAxis.setValueFormatter(new ValueFormatter() {
            @Override
            public String getFormattedValue(float value) {
                return String.valueOf((int) value);  //显示整数
            }
        });
        return;
    }

    private Map<Integer, Integer> getTaskCountByDay(List<Task> tasks) {
        Map<Integer, Integer> dailyTaskCount = new HashMap<>();

        // 初始化每一天的任务数量为0
        for (int day = 1; day <= 31; day++) {
            dailyTaskCount.put(day, 0);
        }

        // 遍历任务列表
        for (Task task : tasks) {
            String createdAt = task.getCreatedAt();

            // 获取日部分
            int dayStartIndex = createdAt.indexOf("年") + 4;
            int dayEndIndex = createdAt.indexOf("日");
            int day = Integer.parseInt(createdAt.substring(dayStartIndex, dayEndIndex));

            // 更新每日任务数
            dailyTaskCount.put(day, dailyTaskCount.getOrDefault(day, 0) + 1);
        }
        System.out.println("每天任务数"+dailyTaskCount);

        return dailyTaskCount;
    }

    public class MyValueFormatter extends ValueFormatter {
        @Override
        public String getFormattedValue(float value) {
            if (value == 0) {
                return ""; // 返回空字符串以隐藏标签
            } else {
                return String.valueOf((int) value); // 返回整数标签
            }
        }
}
}

